﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//struct Stu {
//	char name[20];
//	int age;
//	char sex[5];
//};
//
//int main() 
//{
//	struct Stu s = { "张三",18,"male" };
//	printf("%s\n", s.name);
//	printf("%d\n", s.age);
//	printf("%s\n", s.sex);
//
//	//可以使用指针来指向这个结构体，来进行访问
//	struct Stu* p = &s;
//	printf("%d\n", (*p).age);
//	printf("%s\n", p->name);
//	
//	return 0;
//}
//结构体传参
//struct Stu {
//	int age;
//	char name[20];
//};
////传值
//void print1(struct Stu p)
//{
//	p.age = 19;
//}
////传址
//void print2(struct Stu* p)
//{
//	(*p).age = 20;
//}
//int main()
//{
//	struct Stu s = { 18,"sansan" };
//	print1(s);
//	printf("调用传值调用后age:%d\n", s.age);
//	print2(&s);
//	printf("调用传址调用后age:%d\n", s.age);
//
//	return 0;
//}
//struct S1
//{
//	char c1;
//	int i;
//	char c2;
//};
//struct S2
//{
//	char c1;
//	char c2;
//	int i;
//};
//int main()
//{
//	//计算S1与S2分别的字节大小
//	printf("%zd\n", sizeof(struct S1));
//	printf("%zd\n", sizeof(struct S2));
//
//	return 0;
//}
//
//struct S3
//{
//	double d;
//	char c;
//	int i;
//};
//
//结构体嵌套问题 
//struct S4
//{
//	char c1;
//	struct S3 s3;
//	double d;
//};
//int main()
//{
//	printf("%zd\n", sizeof(struct S3));
//	printf("%zd\n", sizeof(struct S4));
//	return 0;
//}
//#pragma pack(1)//设置默认对⻬数为1 
//struct S
//{
//	char c1;
//	int i;
//	char c2;
//};
//
//int main()
//{
//	//输出的结果是什么？ 
//	printf("%zd\n", sizeof(struct S));
//	return 0;
//}
////结构体实现位段
//union Un 
//{
//	char c1;
//	int i;
//	char c2;
//};
//int main()
//{
//	union Un un = { 0 };
//	//%p是打印地址的，我们看他们是不是真的存储在同一内存
//	un.i = 200;
//	printf("%d\n", un.c1);
//	printf("%d\n", un.c2);
//	printf("%d\n", un.i);
//	return 0;
//}
//int main()
//{
//	union Un un = { 0 };
//	printf("%zd\n", sizeof(un));
//	return 0;
//}

//union Un1
//{
//	char c[5];
//	int i;
//};
//union Un2
//{
//	short c[7];
//	int i;
//};
//int main()
//{
//	//下⾯输出的结果是什么？ 
//	//最大的是5，但又要是最大对齐数4的整数倍数，所以这里是8
//	printf("%zd\n", sizeof(union Un1));
//	//最大是14，但又要是最大对齐数4的整数倍，所以结果是16
//	printf("%zd\n", sizeof(union Un2));
//	return 0;
//}
//union Un
//{
//	char ch;
//	int i;
//};
//int main()
//{
//	union Un un = { 0 };
//	un.i = 1;
//	if (un.ch == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//	return 0;
//}
//enum Day//星期
//{
//	Mon,
//	Tues,
//	Wed,
//	Thur,
//	Fri,
//	Sat,
//	Sun
//};
//enum Color//三颜⾊
//{
//	Red = 1,
//	Green = 5,
//	Blue
//};
//int main()
//{
//	printf("%d\n", Red);
//	printf("%d\n", Green);
//	printf("%d\n",Blue);
//	return 0;
//}
#define Red 1
#define Green 2
#define Blue 3
int main()
{
	printf("%d\n", Red);
	printf("%d\n", Green);
	printf("%d\n", Blue);
	return 0;
}